<?php
class ControllerCommonHeader extends Controller
{
    public function index()
    {
        /** add session for image upload */
        unset($this->session->data['image_root_path']);
        $this->session->data['image_root_path'] = HTTP_CATALOG;
        $this->session->data['image_upload_permission'] = $this->user->hasPermission('modify', 'common/filemanager');
        
        /** session for watermark  start */
        $this->session->data['image_base_path'] = DIR_IMAGE;
        $water_type = $this->config->get('water_type');
        $water_pos = $this->config->get('water_position');
        $water_font = $this->config->get('water_font');
        $water_alpha = $this->config->get('water_alpha');
        $water_img = $this->config->get('water_image');
        $water_font_color = $this->config->get('water_font_color');
        if ($water_font_color) {
            preg_match_all('/\d+,\s*\d+,\s*\d+/', $water_font_color, $match_color);
            $water_font_color = preg_replace('/\s*/', '', $match_color[0][0]);
        } else {
            $water_font_color = '0,0,0';
        }
        $water_font_src = DIR_SYSTEM . 'library/font/JTBZ.TTF';
        $this->session->data['water_data'] = array(
            'type' => $water_type,
            'pos' => $water_pos,
            'font' => $water_font,
            'font_src' => $water_font_src,
            'img' => $water_img,
            'alpha' => (int)$water_alpha,
            'font_color' => $water_font_color,
            'status' => $this->config->get('water_status')
        );
        /** session for watermark  end */

        $data['title'] = $this->document->getTitle();

        if ($this->request->server['HTTPS']) {
            $data['base'] = HTTPS_SERVER;
        } else {
            $data['base'] = HTTP_SERVER;
        }

        unset($this->session->data['image_path']);

        $data['description'] = $this->document->getDescription();
        $data['keywords'] = $this->document->getKeywords();
        $data['links'] = $this->document->getLinks();
        $data['styles'] = $this->document->getStyles();
        $data['scripts'] = $this->document->getScripts();
        $data['lang'] = $this->language->get('code');
        $data['direction'] = $this->language->get('direction');

        $this->load->language('common/header');

        $data['heading_title'] = $this->language->get('heading_title');

        $data['text_order'] = $this->language->get('text_order');
        $data['text_processing_status'] = $this->language->get('text_processing_status');
        $data['text_complete_status'] = $this->language->get('text_complete_status');
        $data['text_return'] = $this->language->get('text_return');
        $data['text_customer'] = $this->language->get('text_customer');
        $data['text_online'] = $this->language->get('text_online');
        $data['text_approval'] = $this->language->get('text_approval');
        $data['text_product'] = $this->language->get('text_product');
        $data['text_stock'] = $this->language->get('text_stock');
        $data['text_review'] = $this->language->get('text_review');
        $data['text_affiliate'] = $this->language->get('text_affiliate');
        $data['text_store'] = $this->language->get('text_store');
        $data['text_front'] = $this->language->get('text_front');
        $data['text_help'] = $this->language->get('text_help');
        $data['text_homepage'] = $this->language->get('text_homepage');
        $data['text_documentation'] = $this->language->get('text_documentation');
        $data['text_support'] = $this->language->get('text_support');
        $data['text_logged'] = sprintf($this->language->get('text_logged'), $this->user->getUserName());
        $data['text_logout'] = $this->language->get('text_logout');

        if (!isset($this->request->get['token']) || !isset($this->session->data['token']) || ($this->request->get['token'] != $this->session->data['token'])) {
            $data['logged'] = '';

            $data['home'] = $this->url->link('common/dashboard', '', true);
        } else {
            $data['logged'] = true;

            $data['home'] = $this->url->link('common/dashboard', 'token=' . $this->session->data['token'], true);
            $data['logout'] = $this->url->link('common/logout', 'token=' . $this->session->data['token'], true);

            // Orders
            $this->load->model('sale/order');

            // Processing Orders
            $data['processing_status_total'] = $this->model_sale_order->getTotalOrders(array('filter_order_status' => implode(',', $this->config->get('config_processing_status'))));
            $data['processing_status'] = $this->url->link('sale/order', 'token=' . $this->session->data['token'] . '&filter_order_status=' . implode(',', $this->config->get('config_processing_status')), true);

            // Complete Orders
            $data['complete_status_total'] = $this->model_sale_order->getTotalOrders(array('filter_order_status' => implode(',', $this->config->get('config_complete_status'))));
            $data['complete_status'] = $this->url->link('sale/order', 'token=' . $this->session->data['token'] . '&filter_order_status=' . implode(',', $this->config->get('config_complete_status')), true);

            // Returns
            $this->load->model('sale/return');

            $return_total = $this->model_sale_return->getTotalReturns(array('filter_return_status_id' => $this->config->get('config_return_status_id')));

            $data['return_total'] = $return_total;

            $data['return'] = $this->url->link('sale/return', 'token=' . $this->session->data['token'], true);

            // Customers
            $this->load->model('report/customer');

            $data['online_total'] = $this->model_report_customer->getTotalCustomersOnline();

            $data['online'] = $this->url->link('report/customer_online', 'token=' . $this->session->data['token'], true);

            $this->load->model('customer/customer');

            $customer_total = $this->model_customer_customer->getTotalCustomers(array('filter_approved' => false));

            $data['customer_total'] = $customer_total;
            $data['customer_approval'] = $this->url->link('customer/customer', 'token=' . $this->session->data['token'] . '&filter_approved=0', true);

            // Products
            $this->load->model('catalog/product');

            $product_total = $this->model_catalog_product->getTotalProducts(array('filter_quantity' => 0));

            $data['product_total'] = $product_total;

            $data['product'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&filter_quantity=0', true);

            // Reviews
            $this->load->model('catalog/oreview');

            $review_total = $this->model_catalog_oreview->getTotalReviews(array('filter_status' => 0));

            $data['review_total'] = $review_total;

            $data['review'] = $this->url->link('catalog/oreview', 'token=' . $this->session->data['token'] . '&filter_status=0', true);

            // Affliate
            $this->load->model('marketing/affiliate');

            $affiliate_total = $this->model_marketing_affiliate->getTotalAffiliates(array('filter_approved' => false));

            $data['affiliate_total'] = $affiliate_total;
            $data['affiliate_approval'] = $this->url->link('marketing/affiliate', 'token=' . $this->session->data['token'] . '&filter_approved=1', true);

            $data['alerts'] = $customer_total + $product_total + $review_total + $return_total + $affiliate_total;

            // Online Stores
            $data['stores'] = array();

            $data['stores'][] = array(
                'name' => $this->config->get('config_name'),
                'href' => HTTP_CATALOG
            );


        
            $data['image_quick_upload_mode'] = $this->config->get('gdconfig_image_quick_upload_mode');
        
      
            $this->load->model('setting/store');

            $results = $this->model_setting_store->getStores();

            foreach ($results as $result) {
                $data['stores'][] = array(
                    'name' => $result['name'],
                    'href' => $result['url']
                );
            }
        }

        $this->load->model('tool/image');
        $data['placeholder'] = $this->model_tool_image->resize('no_image.png', 100, 100);

        return $this->load->view('common/header', $data);
    }
}
